home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / Technical.Notes / IIGS / TN.IIGS.021 < prev    next >
Encoding:
Text File  |  1988-12-16  |  4.2 KB  |  77 lines  |  [TEXT/pdos]

  1. Apple II
  2. Technical Notes
  3. _____________________________________________________________________________
  4.                                                   Developer Technical Support
  5.  
  6.  
  7. Apple IIGS
  8. #21:    DMA Compatibility for Expansion RAM
  9.  
  10. Revised by:    Glenn A. Baxter                                  November 1988
  11. Written by:    Jim Merritt                                        August 1987
  12.  
  13. This Technical Note discusses the Apple IIGS Extended Memory Slot 
  14. specification.
  15. _____________________________________________________________________________
  16.  
  17. The Apple IIGS Extended Memory Slot specification provides for DMA access to 
  18. no more than four rows of RAM on a single board through the CROW0 and CROW1 
  19. signals.  Expansion board designs that involve more than four rows of RAM are 
  20. not compatible with DMA accesses.  Each of the four rows can hold either 256K 
  21. or 1 MB of data.  The design of the Fast Processor Interface (FPI) imposes 
  22. this limit.  Each row can be organized in any of the following configurations 
  23. to yield the respective board capacities assuming there are no more than four 
  24. rows:
  25.  
  26.                    Chips    Configuration    Board Capacity
  27.                      8      256K x 1 DRAM        1 MB
  28.                      8      1 MB x 1 DRAM        4 MB
  29.                      2      256K x 4 DRAM        1 MB
  30.                      2      1 MB x 4 DRAM        4 MB
  31.  
  32. The CROW0 and CROW1 signals properly decode the row addresses for both normal 
  33. and DMA cycles.  The Extended Memory Slot interface does not support the 
  34. latching of bank address information off the data bus during a DMA cycle, and 
  35. a card which attempts to latch the bank address will likely get the last CPU 
  36. cycle's bank address.  Getting the last address is not a problem if it 
  37. accidently happens to be the bank to which you wish to talk, but this is 
  38. rarely the case.  The card gets the last CPU cycle's bank address because DMA 
  39. essentially shuts off the CPU, so it cannot emit the bank address.  The FPI, 
  40. which contains the DMA bank address register ($C037), does not emit the DMA 
  41. bank address either, thus preventing bus contention with the processor as it 
  42. is being removed from that bus.  The DMA bank address register inside the FPI 
  43. affects the addressing and control information  that the Extended Memory Slot 
  44. sees; it does not affect the data bus.  Therefore, during DMA, the bank 
  45. address time is filled with what is essentially random bank address 
  46. information.  Using this random information could result in damaging the 
  47. contents of the memory (destroying little things like the operating system).
  48.  
  49. Suppose a card were designed to latch the bank address directly from the data 
  50. bus with the rising edge of the PH2 clock signal.  It could use the bank 
  51. address to derive the proper RAM row address and never bother with CROW0 and 
  52. CROW1 at all.  Directly latching the bank address would permit the card to 
  53. accommodate any desired RAM arrangement in 64K increments, including an odd 
  54. number of rows.  Although the technique is valid during CPU cycles, it does 
  55. not work during DMA cycles since the FPI never emits the DMA bank address onto 
  56. the data bus.  During DMA cycles, any card that tries to latch the bank 
  57. address directly, instead latches the bank address that was put on the data 
  58. bus during the last CPU cycle, which is probably the wrong value.
  59.  
  60. Currently, there does not seem to be a solution for the DMA situation.  There 
  61. the possibility of "limited DMA compatibility."  An example of a limited-
  62. compatibility card would be one with six banks of memory.  It's lower four 
  63. banks are DMA compatible since they use the CROW0 and CROW1 lines, but the 
  64. upper two banks do not work properly with DMA.  This limited approach should 
  65. be safe, but it is not guaranteed since DMA cards are sometimes aware of the 
  66. total system memory and may expect, quite reasonably, to have access to all 
  67. of the memory when in fact it does not.  There are currently no "memory 
  68. intelligent" DMA cards, but that could change at any point.  The best we can 
  69. suggest at this time is for hardware developers to build only four-row cards 
  70. allowing up to 4 MB of memory, which is sufficient for most current 
  71. applications.
  72.  
  73.  
  74. Further Reference
  75. o    Apple IIGS Hardware Reference
  76.  
  77.